package pe.com.nextel.http;

import pe.com.nextel.rms.DataInputStreamX;
import pe.com.nextel.rms.DataOutputStreamX;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import javax.microedition.io.HttpConnection;

/**
 * Es un bean que encapsula una url de conexion y el mensaje que se 
 * envia o recibe.
 * @author NEXTEL DEL PERU S.A.
 * @version 1.0
 */
public class MensajeHttp {

    private String url;
    private byte[] mensaje;
    private InputStream input;
    private long longitud;//    private Exception exception;
    private String TipoEnvio = HttpConnection.POST;
    private boolean existeError;
    private ByteArrayOutputStream output;
    private DataOutputStreamX dataOutput;

    public MensajeHttp() {
    }

    /**
     * 
     * @return devuelve la url
     */
    public String getUrl() {
        return url;
    }

    /**
     * @param url La url de conexion.
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * 
     * @return devuelve el mensaje
     */
    public byte[] getMensaje() {
        return mensaje;
    }

    /**
     * @param mensaje el mensaje de envio
     */
    public void setMensaje(byte[] mensaje) {
        this.mensaje = mensaje;
    }

    /**
     * 
     * @return devuelve el input recibido por el servidor
     */
    public InputStream getInput() {
        return input;
    }

    /**
     * @param input el input recibido por el servidor
     */
    public void setInput(InputStream input) {
        this.input = input;

    }

    public long getLongitud() {
        return longitud;
    }

    public void setLongitud(long longitud) {
        this.longitud = longitud;
    }

    public String getTipoEnvio() {
        return TipoEnvio;
    }

    public void setTipoEnvio(String TipoEnvio) {
        this.TipoEnvio = TipoEnvio;
    }

    public boolean isExisteError() {
        return existeError;
    }

    public void setExisteError(boolean existeError) {
        this.existeError = existeError;
    }

    public void iniciarRead() {
        output = new ByteArrayOutputStream();
        dataOutput = new DataOutputStreamX(output);
    }

    public DataOutputStreamX getDataOuput() {
        return dataOutput;
    }

    public void cerrarRead() {
        
        mensaje =  output.toByteArray();
        
        try {
            if (dataOutput != null) {
                dataOutput.flush();
                dataOutput.close();
                dataOutput = null;
            }
            if (output != null) {
                output.flush();
                output.close();
                output = null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
